#include "iostream"
#include "../sylar/log.h"
#include "thread"
#include "../sylar/util.h"


int main(){

    /*
        logger中含有多个输出地appender.每个appender中包含了一个formatter，formatter中的format函数遍历每个formaitem项目
        再调用formatItem的format函数，返回每项的格式化子符串结果，然后根据所属的appender,输出到指定的输出流中
     * */

    sylar::Logger::ptr logger(new sylar::Logger);


//    sylar::FileLogAppender::ptr file_appender(new sylar::FileLogAppender("./log.txt"));
////
//    sylar::LoggAppender::ptr m(new sylar::StdoutLogAppender);
//    sylar::LogFormatter::ptr fmt(new sylar::LogFormatter("%d%T%m%n"));
//    m->setFormatter(fmt);
//
//    file_appender->setLevel(sylar::LogLevel::UNKNOW);
//
//
//    logger->addAppender(file_appender);
//    logger->addAppender(m);
    sylar::LogEvent::ptr event(new sylar::LogEvent(logger,sylar::LogLevel::DEBUG,__FILE__,__LINE__,0,
                                                   sylar::GetThreadId(),sylar::GetFirberid(),time(0),sylar::Thread::GetName()));
    logger->log(sylar::LogLevel::DEBUG,event);

    sylar::Logger::ptr  g_logger= SYLAR_LOG_ROOT();
    SYLAR_LOG_INFO(g_logger)<<"123";
//    SYLAR_LOG_FMT_DEBUG(logger,"test macor fmt error %s","aa");
//
//    auto l= sylar::loggerMar::GetIntstance()->getLogger("xx");
//    SYLAR_LOG_INFO(l);
    return 0;
};